//package run.siyuan.rabbitmq.ttl.message.config;
//
//import org.springframework.amqp.core.*;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import run.siyuan.common.constant.Constants;
//
//import java.util.HashMap;
//import java.util.Map;
//
//@Configuration
//public class TtlRabbitConfig {
//
//    /**
//     * 延时demo交换机
//     *
//     * @return
//     */
//    @Bean("ttlDemoExchange")
//    public CustomExchange ttlDemoExchange() {
//        Map<String, Object> args = new HashMap<>();
//        args.put("x-delayed-type", "direct");
//        //使用的是CustomExchange,不是DirectExchange，另外CustomExchange的类型必须是x-delayed-message
//        return new CustomExchange(Constants.TTL_DEMO_EXCHANGE, "x-delayed-message", true, false, args);
//    }
//
//    /**
//     * 延时demo队列
//     *
//     * @return
//     */
//    @Bean("ttlDemoQueue")
//    public Queue ttlDemoQueue() {
//        Map<String, Object> map = new HashMap<String, Object>();
////        map.put("x-message-ttl", 5000);//队列中所有消息5秒后过期
////        map.put("x-dead-letter-exchange", "TTL_DELAY_DEAD_LETTER_FANOUT_EXCHANGE");//过期后进入死信队列
//
//
//        return new Queue(Constants.TTL_DEMO_EXCHANGE_QUEUE, true);
//    }
//
//    /**
//     * 绑定延时demo交换机、队列
//     *
//     * @return
//     */
//    @Bean
//    public Binding bindTtlDemoExchange(@Qualifier("ttlDemoQueue") Queue queue, @Qualifier("ttlDemoExchange") CustomExchange exchange) {
//        return BindingBuilder.bind(queue).to(exchange).with(Constants.TTL_DEMO_EXCHANGE_ROUTE_KEY).noargs();
//    }
//}